package presentacion;
//Login
import static biblioteca.FuncionesDeVentanas.centrarVentana;

import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Frame;

import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;

import static biblioteca.FuncionesDeVentanas.*;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Dialog.ModalityType;


public class Login extends JDialog {

	private JPanel contentPane;
	private JTextField textFieldUsuario;
	private JPasswordField passwordField;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try 
				{
					Login login = new Login();
					login.setVisible(true);
					login.setFocusable(true);	
				} 
				catch (Exception e) 
				{
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public Login() {
		setModalityType(ModalityType.APPLICATION_MODAL);
		setResizable(false);
		
		setTitle("Iniciar Sesion");
		setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
		
		setBounds(100, 100, 400, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		
		JLabel lblIniciarSesion = new JLabel("Sistema de Punto de Venta The Three Amigos");
		lblIniciarSesion.setBounds(5, 5, 384, 19);
		lblIniciarSesion.setHorizontalAlignment(SwingConstants.CENTER);
		lblIniciarSesion.setFont(new Font("Tahoma", Font.BOLD, 15));
		
		JLabel lblNombreDeUsuario = new JLabel("Nombre de Usuario:");
		lblNombreDeUsuario.setBounds(46, 73, 119, 15);
		lblNombreDeUsuario.setFont(new Font("Tahoma", Font.BOLD, 12));
		
		textFieldUsuario = new JTextField();
		textFieldUsuario.setBounds(177, 66, 161, 28);
		textFieldUsuario.setColumns(10);
		
		JLabel lblContrasea = new JLabel("Contrase\u00F1a:");
		lblContrasea.setBounds(91, 119, 74, 15);
		lblContrasea.setFont(new Font("Tahoma", Font.BOLD, 12));
		
		passwordField = new JPasswordField();
		passwordField.setBounds(177, 112, 161, 28);
		
		JButton btnCancelar = new JButton("Cancelar");
		btnCancelar.setBounds(260, 173, 78, 28);
		
		JButton btnIniciarSesion = new JButton("Iniciar Sesion");
		btnIniciarSesion.setBounds(46, 173, 103, 28);
		btnIniciarSesion.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				if (autenticarUsuario(textFieldUsuario.getText(), passwordField.getPassword()))
				{
					Login.this.dispose();
				}	
			}
		});
		contentPane.setLayout(null);
		contentPane.add(lblIniciarSesion);
		contentPane.add(lblContrasea);
		contentPane.add(btnIniciarSesion);
		contentPane.add(lblNombreDeUsuario);
		contentPane.add(passwordField);
		contentPane.add(textFieldUsuario);
		contentPane.add(btnCancelar);
		centrarVentana(this);
		cambiarANimbus(this);
		}

	protected boolean autenticarUsuario(String nombreUsuario, char[] clave) {
		// TODO: validar los datos del login con los de la base de datos
		boolean valorDeRetorno = false;
		
		if (nombreUsuario.equals("Mitchell"))
		{
			JOptionPane.showMessageDialog(this, "El Usuario es Correcto");
			boolean claveCorrecta = true;
			char[] arregloChar = "1234".toCharArray();
			
			//se verifica que los arreglos sean del mismo tamanio
			if(clave.length == arregloChar.length)
			{
				for (int i = 0; i < clave.length; i++) 
				{
					if (clave[i] != arregloChar[i])
					{
						claveCorrecta = false;
						break;
					}
				}
			}
			else //sino son iguales automaticamente devuelve false
			{
				claveCorrecta = false;
			}
			// si la clave e correcta devuelve true
			if(claveCorrecta)
			{
				valorDeRetorno = true;
			}
		}
		else // si el usuario no existe no valida y devuelve false
		{
			JOptionPane.showMessageDialog(this, "El Usuario es incorrecto");
		}
		return valorDeRetorno;		
	}
}